package com.xiaolin.base.common;

/**
 * @ClassName ResolvePrimeFactor
 * @Description 将一个正整数分解质因数。例如：输入90,打印出90=2*3*3*5。
 * @Detail 程序分析：对n进行分解质因数，应先找到一个最小的质数k，然后按下述步骤完成：
            (1)如果这个质数恰等于n，则说明分解质因数的过程已经结束，打印出即可。
            (2)如果n!=k，但n能被k整除，则应打印出k的值，并用n除以k的商,作为新的正整数n,重复执行第一步。
            (3)如果n不能被k整除，则用k+1作为k的值,重复执行第一步。
 * @Author MyPC
 * @Date 2020/8/9
 * @Version 1.0
 */
public class ResolvePrimeFactor {

    public static void main(String[] args) {
        String s = resolvePrimeFactor(100);
        System.out.println(s);
    }

    public static String resolvePrimeFactor(int number){
        StringBuilder sb=new StringBuilder();
        int k=2;
        while (k!=number){
            //当k==number时，直接结束循环，判断是否k能够被整除
            if(number%k==0){
                sb.append(k).append('*');
                number=number/k;
                k=2;
            }else {
                //如果整除不了，k步长+1
                k++;
            }
        }
        //追加number，这时的number就是不能被整除的数
        sb.append(number);
        return sb.toString();
    }
}
